1. The Field of the Invention
The present invention relates to software development. More particularly, the present invention relates to an Application Program Interface (API) that facilitates use of a software platform by application programs and computer hardware to create and interact in distributed computing activities.
2. Background and Related Art
Computing technology has transformed the way we work and play. Computing systems now take a wide variety of forms including desktop computers, laptop computers, tablet PCs, Personal Digital Assistants (PDAs), household devices and the like. In its most basic form, a computing system includes system memory and one or more processors. Software in the system memory may be executed by the processor to direct the other hardware of the computing system to perform desired functions.
Software has been generally divided into “operating system” software and “application” software. While it is not absolutely necessary for a computing system to have an operating system, operating systems are helpful in general purpose computing systems as they manage and control the computing hardware and perform generalized system tasks such as file management, thread scheduling, multitasking, and the like. The application software may perform more specialized tasks and, when necessary, may call upon the system level functions offered by the operating system. The presence of an operating system makes application development much more streamlined, since basic functions do not need to be redeveloped for each application.
The operating system makes available many core functions to application software. Application developers can cause the application software to call upon the functions exposed by the operating system, by drafting source code that complies with an Application Program Interface (API). During runtime, the application program calls upon the operating system when executing the processor-level instructions compiled from that source code. Accordingly, application software requests resources by calling individual API functions. API functions also serve as the means by which the operating system may provide any related information back to the application software. The term API is used to refer to a single function call to the operating system, as well as the collection of possible function calls to the operating system. In addition, the term API is applied to both the source code representation of the function call as well as the in-memory representation of the function call.
Over the past few years, the universal adoption of the Internet, and networking technology in general, has changed the landscape for computer software developers. Traditionally, software developers focused on single-site software applications for standalone desktop computers, or LAN-based computers that were connected to a limited number of other computers via a local area network (LAN). These applications utilized well-defined APIs to access the underlying operating system of the computer.
As the Internet evolved and gained widespread acceptance, the industry began to recognize the power of hosting applications at various sites on the World Wide Web (or simply the “Web”). In the networked world, clients from anywhere may submit requests to server-based applications hosted at diverse locations and receive responses back in fractions of a second. These Web applications, however, were typically developed using the same operating system platform that was originally developed for standalone computing machines or locally networked computers. Unfortunately, in some instances, these applications do not adequately transfer to the distributed computing regime. The underlying platform was simply not constructed with the idea of supporting limitless numbers of interconnected computers.
To accommodate the shift to the distributed computing environment being ushered in by the Internet, Microsoft Corporation developed a software platform known as the “.NET” Framework (read as “Dot Net”) or Microsoft® .NET. Microsoft® .NET is software for connecting people, information, systems, and devices. The platform allows developers to create Web services that will execute over the Internet. This dynamic shift was accompanied by a set of API functions for the .NET Framework.
As use of the .NET Framework has become increasingly common, ways to increase the efficiency and/or performance of the platform have been identified. The inventors have developed a unique set of API functions to allow for such increased efficiency and/or performance.